Go 使用Dockerfile构建项目 mod 报错处理

您所在的位置:网站首页 update download did not Go 使用Dockerfile构建项目 mod 报错处理

Go 使用Dockerfile构建项目 mod 报错处理

#Go 使用Dockerfile构建项目 mod 报错处理| 来源: 网络整理| 查看: 265

1.情景

正在使用Dockerfile构建Go项目镜像的时候,遭遇到了executor failed running [/bin/sh -c go mod tidy]: exit code: 2以及ERROR [internal] load metadata for docker.io/library/golang:1.19报错,经过一番折腾,终于解决,记录一下!

2.一开始的Dockerfile FROM golang:alpine as builder WORKDIR /go/web-api # 为我们的镜像设置必要的环境变量 ENV GO111MODULE=on ENV CGO_ENABLED=0 ENV GOPROXY=https://goproxy.cn,direct ENV GOOS=linux ENV GOARCH=amd64 COPY . . RUN go mod tidy RUN go build -o server . 3.解决方案 3.1第一个报错executor failed running [/bin/sh -c go mod tidy]: exit code: 2

报错内容

------ > [builder 4/5] RUN go mod tidy: #8 0.275 go: unknown subcommand "mod" #8 0.275 Run 'go help' for usage. ------

按照提示信息显示,找不到命令.怀疑是golang:alpine低于当前项目的Go版本(当前项目1.19).于是尝试更换成golang:1.19-alpine3.15,这次没有mod的报错了,但是有新的报错.

3.2第二个报错ERROR [internal] load metadata for docker.io/library/golang:1.19 ------ > [internal] load metadata for docker.io/library/golang:1.19-alpine3.15: ------ failed to solve with frontend dockerfile.v0: failed to create LLB definition: unexpected status code [manifests 1.19-alpine3.15]: 400 Bad Request

好像是镜像问题,随即查阅一番资料,得到结论,原来是Docker Desktop的设置问题,需要将setting->Docker Engine的json配置文件中的

"features": { "buildkit": true },

修改为false即可.

4.修改后结果

修改后重新运行docker build -t xxx/xxx .命令成功生成镜像.希望能帮助到有相同问题的小伙伴^_^



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3